Its use is not only strongly discouraged[0], we also rely on it injecting
variables into the global scope to get command-line-like behavior. That
behavior is incompatible with strict mode[1], and in extension with ES6
classes (which imply strict mode).
So to prepare for porting to ES6 classes, replace it with a somewhat less
evil construct that is compatible with strict mode.